﻿#include "tcpsocket.h"
#include <iostream>
using namespace std;

int main()
{
    //1.初始化socket环境
    init_socket();

    //获取终端的名称
    char clientname[128] = { 0 };
    gethostname(clientname, 128);

    //2.创建SOCKET对象，做配置，连接服务器
    SOCKET clientsocket = clientSocket("192.168.124.36");
    cout << "这是客户端：" << clientname << ",连接成功，可以给服务端发消息了：" << endl;

    //3.开始发消息，收消息
    char buf[512] = { 0 };//用来存储收发到的消息
    while (true)
    {
        //每次使用buf之前，都需要将它清空，不要保留历史消息
        memset(buf, 0, 512);
        cout << "客户端说：";
        cin.getline(buf, 512);
        //加一个代码，输入exit可以退出聊天
        if (buf[0] == 'e' and buf[1] == 'x' and buf[2] == 'i' and buf[3] == 't')
        {
            break;
        }
        if (send(clientsocket, buf, 512, 0) == SOCKET_ERROR)
        {
            cout << "客户端send失败，错误码：" << WSAGetLastError() << endl;
            break;
        }

        //收消息
        //每次使用buf之前，都需要将它清空，不要保留历史消息
        memset(buf, 0, 512);
        if (recv(clientsocket, buf, 512, 0) > 0)
        {
            cout << "服务端说：" << buf << endl;
        }
        else
        {
            cout << "客户端recv失败，错误码：" << WSAGetLastError() << endl;
            break;
        }
    }

    //退出循环后，聊天结束，需要做清理工作
    //第一步，先清理掉所有的SOCKET对象，使用的是closesocket函数
    closesocket(clientsocket);
    //第二步，释放socket系统资源
    close_socket();
}

